package com.example.everying.service.user;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.everying.model.dto.user.UserBalanceTransactionDetailDto;
import com.example.everying.model.dto.user.TransactionPageDto;
import com.example.everying.model.dto.user.UserBalanceTransactionEntityDto;
import com.example.everying.model.dto.user.UserBalanceTransactionStaticDto;
import com.example.everying.model.entity.user.UserBalanceTransactionEntity;
import com.example.everying.model.vo.user.UserBalanceTransactionVO;
import com.example.everying.utils.Result;

import java.util.List;

public interface UserBalanceTransactionService extends IService<UserBalanceTransactionEntity> {
    List<UserBalanceTransactionEntity> getTransactionsByUserId(String userId);

    IPage<UserBalanceTransactionEntity> selectPage(Page<UserBalanceTransactionEntity> pageParam, UserBalanceTransactionEntityDto dto);

    boolean updateTransactionStatus(String txId, int status);

    UserBalanceTransactionVO stats(Page<UserBalanceTransactionEntity> pageParam,UserBalanceTransactionStaticDto dto);

    Result<?> selectPageWithUser(TransactionPageDto dto);


    Result<?> detail(UserBalanceTransactionDetailDto dto);
}
